package com.tongtech.proxy.fw;

public class Well {
    private int waterLevel; // 水井的水量
    private static final int MAX_WATER = 100; // 水井的最大水量

    public Well(int initialWaterLevel) {
        this.waterLevel = Math.min(initialWaterLevel, MAX_WATER); // 确保初始水量不超过最大水量
    }

    // 取水方法
    public boolean drawWater(int amount) {
        if (amount <= 0) {
            System.out.println("取水量必须大于0。");
            return false;
        }
        if (amount > waterLevel) {
            System.out.println("水井的水量不足，无法取出 " + amount + " 升水。");
            return false;
        }
        waterLevel -= amount;
        System.out.println("成功取出 " + amount + " 升水，剩余水量为 " + waterLevel + " 升。");
        return true;
    }

    // 添加水方法
    public void addWater(int amount) {
        if (amount <= 0) {
            System.out.println("添加的水量必须大于0。");
            return;
        }
        waterLevel = Math.min(waterLevel + amount, MAX_WATER);
        System.out.println("向水井添加了 " + amount + " 升水，当前水量为 " + waterLevel + " 升。");
    }

    // 获取当前水量
    public int getCurrentWaterLevel() {
        return waterLevel;
    }

    public static void main(String[] args) {
        Well myWell = new Well(50); // 创建一个初始水量为50升的水井
        System.out.println("初始水量：" + myWell.getCurrentWaterLevel() + " 升");

        // 尝试取20升水
        myWell.drawWater(20);

        // 尝试取超过当前水量的水
        myWell.drawWater(40);

        // 添加一些水
        myWell.addWater(30);

        // 再次尝试取水
        myWell.drawWater(10);

        // 查看最终水量
        System.out.println("最终水量：" + myWell.getCurrentWaterLevel() + " 升");
    }
}
